跳到主要内容

prompt injection

间接注入、混淆代理、lethal trifecta 的机制与防御思路

核心要点

  • 直接注入走用户输入,间接注入走外部内容
  • 混淆代理:低信任内容驱动高权限操作
  • tool poisoning:工具描述里藏恶意指令
  • lethal trifecta:私密数据 + 不可信内容 + 对外通信
  • 防御:最小权限 + 数据指令分离 + 沙箱

本文讲通用 prompt injection。记忆作为一类攻击面见 03-记忆系统/08-记忆安全,沙箱隔离见 03-沙箱隔离

prompt injection 为什么难防?

核心问题:注入攻击为什么不能像 SQL 注入那样靠转义解决?

因为 LLM 把指令和数据放在同一个 token 流里,无法在原理上区分"该执行的指令"和"该处理的数据"[1]。任何能送进上下文的文本,模型都可能当成指令执行。

这与传统注入有本质不同:SQL 有明确的代码/数据边界可转义,LLM 没有。OWASP 把它列为 LLM01——首要风险。下面看它在 agent 场景的具体形态。

间接注入和混淆代理是什么?

核心问题:攻击者不直接跟 agent 对话,怎么注入?

间接注入通过 agent 读取的外部内容(网页/邮件/文档/工具返回)投递恶意指令,混淆代理则是 agent 被低信任内容骗去执行高权限操作[1]。两者常组合出现。

  • 间接注入:攻击者把指令藏进 agent 会读到的网页或文档,无需直接接触 agent。
  • 混淆代理(confused deputy):agent 持有高权限,却被它读到的低信任内容支配——本质矛盾是"读不可信数据"和"有高权限"同时存在。
  • tool poisoning:把恶意指令嵌进 MCP 工具的 description/schema,常用 Base64/hex 编码绕过人工审查(供应链视角见 04-MCP供应链)。

什么时候一次注入就能酿成数据外泄?

核心问题:注入成功后,什么条件让它从"捣乱"升级为"窃取"?

当 agent 同时具备私密数据访问、不可信内容接触、对外通信三种能力时,一次注入即可完整外泄数据——Simon Willison 称之为 lethal trifecta[2]。三者缺一不可,凑齐就致命。

  • 私密数据访问:agent 能读敏感信息。
  • 不可信内容接触:agent 会处理外部可控内容(注入入口)。
  • 对外通信:agent 能把数据发出去(外泄出口)。

Microsoft 365 Copilot、GitHub MCP、Slack AI 都有公开的 trifecta 漏洞案例。可借鉴的判断:设计 agent 时检查这三项是否同时存在,能砍掉一项就砍掉——这是比事后过滤更可靠的架构级防御。

怎么防 prompt injection?

核心问题:既然无法在 token 层区分指令与数据,防御从哪下手?

从架构层分离信任边界,而非寄望于检测恶意 prompt。OWASP 推荐特权最小化 + 外部内容隔离 + 高风险操作人工确认[1]。更强的方案在架构上分离信任:

  • Dual LLM:用特权 LLM 和隔离 LLM 分工,隔离 LLM 处理不可信内容、不持有权限。
  • CaMeL:在架构层实现 P-LLM/Q-LLM 分离 + taint tracking(污点追踪),提供可证安全保证,AgentDojo 实测任务完成率 77%,防御代价约 7 个百分点[3]

可借鉴的核心思路:把"处理不可信数据"和"持有高权限"拆给不同组件,让混淆代理无从发生。配合沙箱(见 03-沙箱隔离)和最小权限,构成纵深防御。

Takeaway

知识点核心结论
难防根因指令与数据共享 token 流,无原理性边界
间接注入经外部内容投递,攻击者不接触 agent
混淆代理高权限 agent 被低信任内容支配
lethal trifecta私密数据 + 不可信内容 + 对外通信凑齐即致命
防御最小权限 + 信任边界分离(Dual LLM/CaMeL)+ 沙箱

参考资料

  1. OWASP. LLM01:2025 Prompt Injection. 2025. https://genai.owasp.org/llmrisk/llm01-prompt-injection/
  2. Simon Willison. The lethal trifecta for AI agents: private data, untrusted content, and external communication. 2025. https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/
  3. Debenedetti et al. Defeating Prompt Injections by Design (CaMeL). arXiv:2503.18813, 2025. https://arxiv.org/abs/2503.18813

延伸阅读